﻿//你是一个勇士，现在你准备去森林刷毛球怪，你有两个属性（血量，攻击力），毛球怪也有这两个属性。
//当你遭遇一只毛球怪时你们会进入战斗，然后你和毛球怪轮流攻击（你先手），
//每次使对方的血量减去自己攻击力的数值，当一方的血量小于等于 0 时死亡。
//现在你想知道在自己活着的前提下最多杀死几只毛球怪。

//输入描述 :
//第一行一个正整数t，代表测试数据组数。
//第二行四个正整数h，a，H，A，代表你的血量和攻击力以及毛球怪的血量和攻击力。
//所有整数大小不超过1000。
//
//输出描述 :
//共 t 行，每行一个整数x，代表最多能杀死多少毛球怪。如果能杀死无数只，输出 - 1。

//输入
//1
//5 1 2 1
//输出
//4

#include <iostream>
using namespace std;
int t;
int h, a, H, A;
int fun()
{
	if (a >= H) return -1;

	int m = (H / a) + (H % a != 0 ? 1 : 0); // 怪物能抗⼏次
	int n = m - 1; // 玩家被攻击⼏次
	int x = n * A; // 杀死⼀只怪物的时候，玩家会掉多少⾎
	int ret = h / x - (h % x == 0 ? 1 : 0);
	return ret;
}
int main()
{
	cin >> t;
	while (t--)
	{
		cin >> h >> a >> H >> A;
		cout << fun() << endl;
	}

	return 0;
}








